@ms-cloudpack/task-reporter
A library for standardizing how tasks are logged to the console.
Example usage
- Create a reporter:
const taskReporter = new TaskReporter({
productName: `Foobar`,
version: `1.2.3`,
description: `running tasks with ${bold(`15`)} workers`,
showStarted: false,
showPending: true,
showCompleted: true,
showSummary: true,
showTaskDetails: true,
});
- Add tasks with the reporter
addTask
method:
const task = taskReporter.addTask(`build something`, true);
try {
task.start();
} finally {
task.complete({ status: 'complete' });
}
- You can use various formatting helpers to spice up the colorization and formatting of your logging:
import { bulletedList } from '@ms-cloudpack/task-reporter';
task.complete({
status: 'fail',
message: 'Reason',
details: bulletedList(['Name: value', 'Errors:', ['sub-bullet things', 'etc'], 'Warnings', ['warn1', etc]]),
});
A variety of helper functions are available for formatting.
import { cyan, bold, red } from '@ms-cloudpack/task-reporter';
task.complete('fail', { message: cyan(bold(`I am an ${red(`error`)}`)) });
- When all your tasks are completed, or if you encountered an exit-early scenario, call
reporter.complete('reason')
to end task logging:
reporter.completeWhenTasksDone();
process.on('SIGINT', () => {
reporter.complete('User hit Ctrl-C');
});